#ifndef COMMANDS_H_
#define COMMANDS_H_

#include <string>
#include <map>

using namespace std;

enum Command {
	COMMAND_INVALID_COMMAND,
	COMMAND_MOVE_LEFT,
	COMMAND_MOVE_RIGHT,
	COMMAND_MOVE_UP,
	COMMAND_MOVE_DOWN,
	COMMAND_TOP,
	COMMAND_RESTART,
	COMMAND_EXIT
};

class Commands {
public:
	static Command parse(const string & commandName);

	Commands();
	Command operator [](const string & commandName);
private:
	static string convertToUppercase(const string & name);

	map<string, Command> commands;
};

#endif /* COMMANDS_H_ */
